#ifndef __ANDROID__VIDEO__CAPTURE__FACTORY__
#define __ANDROID__VIDEO__CAPTURE__FACTORY__

#include "VideoCaptureFactory.h"
#include <memory>
#include "jni_utils.h"

namespace simple_renderer {
class AndroidVideoCaptureFactory : public VideoCaptureFactory{
public:
    AndroidVideoCaptureFactory();
    virtual ~AndroidVideoCaptureFactory();

#ifdef __ANDROID__
    virtual std::unique_ptr<VideoCapture> CreateVideoCapture();
#endif
    virtual int GetNumberOfCameras() override;
    virtual std::string GetDeviceName(std::string id) override;
    virtual int GetDeviceOrientation(std::string id) override;
    virtual std::string GetCapabilities(std::string id) override;

protected:
    std::unique_ptr<JavaGlobalRef<jobject>> _android_video_capture_factory;
};

}
#endif